package com.swanclouds.model.managers;

import com.swanclouds.model.DeviceEntity;
import com.swanclouds.redfish.common.redfish.Status;

import java.util.List;
import java.util.Map;

public interface Log extends DeviceEntity {

  /**
   * 日志服务的Id
   * @return String
   */
  String getId();

  /**
   * 日志服务的名称
   * @return String
   */
  String getName();

  /**
   * 日志信息的访问路径
   * @return String
   */
  String getDataId();

  /**
   * 日志信息的类型
   * @return String
   */
  String getType();

  /**
   * 日志最大的记录个数
   * @return  Integer
   */
  Integer getMaxNumberOfRecords();

  /**
   * 日志服务使能状态
   * @return Boolean
   */
  Boolean getServiceEnabled();

  /**
   * 日志的存储策略
   * @return String
   */
  String getOverWritePolicy();

  /**
   * 日志信息资源列表访问入口
   * @return String
   */
  String getLogEntryTypes();

  /**
   * 日志服务当前的时间
   * @return String
   */
  String getDateTime();

  /**
   * 当前时间相对UTC的时间差
   * @return String
   */
  String getDateTimeLocalOffset();

  /**
   * 日志服务的描述
   * @return String
   */
  String getDescription();

  /**
   * 对象 日志的状态包括 Health 日志功能健康状态 State 日志功能使能状态
   * @return java.util.List
   */
  List<Status> getStatus();

  /**
   * 可对日志执行的操作
   * @return java.util.Map
   */
  Map<String,Object> getActions();

  /**
   * 日志具体资源信息列表
   * @return java.util.List
   */
  List<String> getMembers();

  /**
   * 日志实例信息的类型
   * @return String
   */
   String getEntryType();

  /**
   * 日志实例信息的日志级别
   * @return String
   */
   String getSeverity();

  /**
   * 日志实例信息产生的时间
   * @return String
   */
   String getCreated();

  /**
   * 日志实例信息的时间戳
   * @return String
   */
   String getEventTimestamp();

  /**
   * 日志实例信息的类型
   * @return String
   */
   String getEntryCode();

  /**
   * 产生日志实例信息的传感器类型
   * @return String
   */
  String getSensorType();

  /**
   * 产生实例日志信息的传感器编号
   * @return String
   */
   String getSensorNumber();

  /**
   * 日志实例信息的消息内容
   * @return String
   */
   String getMessage();

}
